#pragma once

#include <windows.h>
#include <string>

class Desktop {
public:
	~Desktop();

	bool GetName(std::wstring* desktop_name_out) const;

	bool IsSame(const Desktop& other) const;

	bool SetThreadDesktop() const;

	static Desktop* GetDesktop(const wchar_t* desktop_name);

	static Desktop* GetInputDesktop();

	static Desktop* GetThreadDesktop();

private:
	Desktop(HDESK desktop, bool own);

	HDESK desktop_;

	bool own_;

	Desktop(const Desktop&) = delete;
	Desktop& operator=(const Desktop&) = delete;
};

